home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 October: Mac OS SDK / Dev.CD Oct 97 SDK1.toast / Development Kits (Disc 1) / Apple Shared Library Manager / ASLM Examples / TestTools / Sources / PreloadTest.c < prev    next >
Encoding:
C/C++ Source or Header  |  1996-11-19  |  2.1 KB  |  101 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        PreloadTest.c
  3.  
  4.     Contains:    Test Circular dependencies in libraries
  5.  
  6.     Copyright:    © 1992-1994 by Apple Computer, Inc., all rights reserved.
  7.  
  8. */
  9.  
  10. #ifndef __STDIO__
  11. #include <stdio.h>
  12. #endif
  13. #ifndef __CTYPE__
  14. #include <ctype.h>
  15. #endif
  16.  
  17. #ifndef __LIBRARYMANAGER__
  18. #undef NULL
  19. #include <LibraryManager.h>
  20. #endif
  21. #ifndef __LIBRARYMANAGERUTILITIES__
  22. #include <LibraryManagerUtilities.h>
  23. #endif
  24.  
  25. extern int    CircLib1(void);
  26. extern int    CircLib2(void);
  27. extern int    CircLib3(void);
  28. extern OSErr    UnloadCircLib1(void);
  29. extern Boolean    IsLibraryManagerLoaded(void);
  30.  
  31. int main(int argc, char** argv)
  32. {
  33.     OSErr    err;
  34.     int        a, b, c;
  35.     Boolean    doBreak = false;
  36.     short    index;
  37.     
  38.     for (index = 1; index < argc; index++)
  39.     {
  40.         if (argv[index][0] == '-')
  41.         { 
  42.             switch (tolower(argv[index][1]))
  43.             {
  44.                 case 'x':
  45.                     doBreak = true;
  46.                     break;
  47.                     
  48.                 default:
  49.                     fprintf(stderr, "### ERROR: Unknown option - '%s'\n", argv[index]);
  50.                     return 1;
  51.             }
  52.         }
  53.         else
  54.         {
  55.             fprintf(stderr, "### ERROR: Unknown option - '%s'\n", argv[index]);
  56.             return 1;
  57.         }
  58.     }
  59.     if (doBreak)
  60.         DebugBreak("About to call InitLibraryManager");
  61.     
  62.     if ((err = InitLibraryManager(32768, kCurrentZone, kNormalMemory)) != kNoError)
  63.     {
  64.         fprintf(stderr, "### ERROR: Error #%d occurred initializing SLM\n", err);
  65.         return 3;
  66.     }
  67.     if ((err = LoadLibraries(true, true)) != kNoError)
  68.     {
  69.         fprintf(stderr, "### ERROR: Error #%d occurred preloading libraries\n", err);
  70.         CleanupLibraryManager();
  71.         return 4;
  72.     }
  73.     a = CircLib1();
  74.     if (a != 515)
  75.     {
  76.         fprintf(stderr, "### ERROR: CircLib1 returned a %d instead of a 515\n", a);
  77.     }
  78.     b = CircLib2();
  79.     if (b != 516)
  80.     {
  81.         fprintf(stderr, "### ERROR: CircLib2 returned a %d instead of a 516\n", b);
  82.     }
  83.     c = CircLib3();
  84.     if (c != 517)
  85.     {
  86.         fprintf(stderr, "### ERROR: CircLib3 returned a %d instead of a 517\n", c);
  87.     }
  88.     if ((err = UnloadLibraries()) != kNoError)
  89.     {
  90.         fprintf(stderr, "### ERROR: Error #%d occurred preloading libraries\n", err);
  91.     }
  92.     ResetFunctionSet(NULL);
  93.     if ((err = UnloadCircLib1()) != kNoError)
  94.     {
  95.         fprintf(stderr, "### ERROR: Error #%d occurred unloading CircLib1\n", err);
  96.     }
  97.     CleanupLibraryManager();
  98.     return 0;
  99. }
  100.  
  101.